package com.wisdom.benefit.jufa.utils;

import android.text.TextUtils;

/**
 * 掩码工具类
 * Created by zhoudawei on 2016/12/19.
 */

public final class MaskUtil {

    /**
     * 生成身份证号掩码
     *
     * @param cid 身份证号
     * @return 掩码后的身份证号
     */
    public static String maskCid(String cid) {
        if (TextUtils.isEmpty(cid)) return "";
        StringBuilder sb = new StringBuilder();
        int length = cid.length();
        sb.append(cid.substring(0, length - 12));//掩码前
        for (int i = 0; i < 8; i++) {//掩码
            sb.append("*");
        }
        sb.append(cid.substring(length - 4, length));//后4位
        return sb.toString();
    }

    /**
     * 生成手机号掩码
     *
     * @param phone 手机号
     * @return 掩码后的手机号
     */
    public static String maskPhone(String phone) {
        if (TextUtils.isEmpty(phone)) return "";
        if (!RegularUtil.isValidPhone(phone)) return phone;
        StringBuilder sb = new StringBuilder();
        int length = phone.length();
        sb.append(phone.substring(0, length - 8));//掩码前
        for (int i = 0; i < 4; i++) {//掩码
            sb.append("*");
        }
        sb.append(phone.substring(length - 4, length));//后4位
        return sb.toString();
    }

    /**
     * 生成银行卡号掩码
     *
     * @param card 银行卡号
     * @return 掩码后的银行卡号
     */
    public static String maskCard(String card) {
        if (TextUtils.isEmpty(card)) return "";
        StringBuilder sb = new StringBuilder();
        int length = card.length();
        sb.append(card.substring(0, 4));//前4位
        for (int i = 0; i < 8; i++) {//掩码
            sb.append("*");
        }
        sb.append(card.substring(sb.length(), length));//后4位
        return sb.toString();
    }

    /**
     * 生成姓名掩码
     *
     * @param name 姓名
     * @return 掩码后的姓名
     */
    public static String maskName(String name) {
        if (TextUtils.isEmpty(name)) return "";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < name.length(); i++) {
            if (i < name.length() - 1)
                sb.append("*");
            else
                sb.append(name.charAt(i));
        }
        return sb.toString();
    }
}
